<template>
  <div class="import">
    <el-card>
      <h3 style="text-align: center">员工导入</h3>
      <HmUploadExcel2 :on-success="onSuccess" :before-upload="beforeUpload" />
    </el-card>
  </div>
</template>
<script>
import { sysUserBatch } from '@/api/employees'
export default {
  created() {
    // const arr = [
    //   { 姓名: '张三', 年纪: 18 },
    //   { 姓名: '李四', 年纪: 28 }
    // ]
    // //  const arr=[{name:'张三',age:18},{name:'李四',age:28}]
    // //  1:写出转换规则 {key:value}   2:循环数据进行转换生一个新的数组
    // // Object.keys  Object.value  Object.entries()
    // const obj = {
    //   姓名: 'name',
    //   年纪: 'age'
    // }
    // const newArr = arr.map((item) => {
    //   //  Object.keys(item)===>['姓名','年纪']
    //   const temp = {}
    //   Object.keys(item).forEach((key) => {
    //     // obj[key]===name
    //     temp[obj[key]] = item[key]
    //   })
    //   return temp
    // })
    // console.log(newArr)
    const excelTime = 43535
    //  js:2019-03-11
    const t = new Date(
      (excelTime - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000
    )
    t.setYear(t.getFullYear() - 70)
    console.log(t)
  },
  methods: {
    // 上传前的限制
    beforeUpload(file) {
      console.log(file)
      // 1k
      // file.size 单位是字节
      const limitSize = file.size / 1024 < 900
      if (!limitSize) {
        this.$message.warning('请上传小于1k的文件')
      }
      return limitSize
    },
    async onSuccess(obj) {
      console.log(obj.results)
      /*
      1:定义接口api
      2:导入
      3：数据解析
         mobile===手机号
        timeOfEntry		入职日期
        username			姓名
        workNumber			工号
        mobile			手机号
        correctionTime			转正日期

      4：调用接口
      调用成功，提示一下，返回用户列表
      */
      /*
      excel时间：从1900年到现在的天数,从1开始，8点开始计算
      js时间：1970年到现在的毫秒数
      将excel时间转换成js时间
      */

      // 定义转换规则
      const rules = {
        入职日期: 'timeOfEntry',
        姓名: 'username',
        工号: 'workNumber',
        手机号: 'mobile',
        转正日期: 'correctionTime'
      }
      const newArr = obj.results.map((item) => {
        // Object.entries(item)====[[入职日期,43535]]
        const temp = {}
        Object.entries(item).forEach((item2) => {
          if (
            rules[item2[0]] === 'timeOfEntry' ||
            rules[item2[0]] === 'correctionTime'
          ) {
            const t = new Date(
              (item2[1] - 1) * 24 * 60 * 60 * 1000 - 8 * 60 * 60 * 1000
            )
            t.setYear(t.getFullYear() - 70)
            temp[rules[item2[0]]] = t
          } else {
            temp[rules[item2[0]]] = item2[1]
          }
        })
        return temp
      })

      await sysUserBatch(newArr)
      this.$message.success('导入成功')
      // this.$router.go(-1)
      this.$router.push('/employees')
    }
  }
}
</script>
<style lang="scss" scoped>
.import {
  padding: 20px;
}
</style>
